package homework1_array;

import java.io.*;

public class BatchCreateFile {
    public static void main(String[] args) {
        //1.批量创建文件夹
        int i = 0;
        while (i++ < 110) {
            String path = "/Users/liuqingchao/Desktop/alg/alg45_1/ch0_homework/src/main/java/homework1_array/alg_" + i;
            File file = new File(path);
            if (!file.exists()) {
                file.mkdir();

            }
        }

//
        //todo 问题：文件复制之后，每个文件的package 需要改，不能直接复制，需要修改文件内容
//        int i = 0;
//        while (i++ < 110) {
//            String oldPath = "/Users/liuqingchao/Desktop/alg/alg45_1/ch0_homework/src/main/java/homework1_array/ArrayHomework.java" ;
//            String newPath = "/Users/liuqingchao/Desktop/alg/alg45_1/ch0_homework/src/main/java/homework1_array/alg_"+i+"/ArrayHomework.java" ;
//            try {
//                copyFile(oldPath,newPath);
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
    }

    // 文件复制
    public static boolean copyFile(String source, String copy) throws Exception {

        File source_file = new File(source);
        File copy_file = new File(copy);

        // BufferedStream缓冲字节流

        if (!source_file.exists()) {
            throw new IOException("文件复制失败：源文件（" + source_file + "） 不存在");
        }
        if (copy_file.isDirectory()) {
            throw new IOException("文件复制失败：复制路径（" + copy_file + "） 错误");
        }

        // 创建复制文件
        if (!copy_file.exists()) {
            copy_file.createNewFile();
        }

        FileInputStream fis = new FileInputStream(source_file);
        FileOutputStream fos = new FileOutputStream(copy_file);

        BufferedInputStream bis = new BufferedInputStream(fis);
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        byte[] KB = new byte[10240];
        int index;
        while ((index = bis.read(KB)) != -1) {
            bos.write(KB, 0, index);
        }

        bos.close();
        bis.close();
        fos.close();
        fis.close();

        if (!copy_file.exists()) {
            return false;
        } else if (source_file.length() != copy_file.length()) {
            return false;
        } else {
            return true;
        }

    }
}
